Many organizations have plural sites where databases are maintained, each with different operating systems and database structures. There is a continuing demand to join together such multiple databases so as to enable transparent access to data contained in them. "Transparent" implies that the user at a specific site is able to access data from all connected databases, without being aware of the origin of the data nor of any incompatibilities which might exist between a local database and any of the plurality of remote databases. Hereafter, it is also to be understood that the terms "remote" and "local" not only refer to physical locations but also to databases that are located at a single site (on one or more computers), but are controlled by different operating systems or database protocols. In the latter category, "local" defines the site where the data query is initiated and "remote" defines the database which is controlled by a database management system (DBMS) that is different from a DBMS at the local site.
For instance, one site might utilize DB2 (a trademark of the International Business Machines Corporation) as its resident DBMS; another might use Oracle (a trademark of the Oracle Corporation) as its DBMS; and still another, Sybase (a trademark of the Sybase Corporation) as its resident DBMS. Transparent access enables a user at one site (e.g. the DB2 site) to utilize only one application program interface to access all of the aforesaid databases, without worrying about DBMS incompatibilities.
One of the more widely used database types is the "relational" database wherein various datatypes are related in accordance with predetermined relationships. More recently, object-based databases have come into use and provide not only defined datatypes, but further enable a mapping of functions to specific datatypes. To enable such disparate databases to be configured into a transparent access system, the prior art has utilized one-for-one translation tables. Such a table enables (i) a user to access a datatype from a remote database; and (ii) to receive the datatype and automatically, under control of a conversion table, convert that datatype to a local database datatype so that it can be handled in accordance with the local datatype protocols.
So long as the data contents of the respective datatypes are susceptible to being handled similarly, such conversion procedures are satisfactory. However, if the data contained in a datatype from a remote database includes a different attribute than the data in a datatype at the local database, errors can occur when using a one-for-one translation table. For instance, if the datatypes are both product prices, but one datatype is expressed in a first currency denomination and the other datatype is expressed in a second currency denomination, errors will occur in the processing of the converted datatype at the local database.
U.S. Pat. No. 5,278,978 to Demers et al. (assigned to the same Assignee as this application) describes a method for establishing a context in which data exchange between dissimilar relational DBMS's can be mutually understood and preserved. When such databases must talk to each other, each DBMS identifies its machine and system descriptors to the other. This establishes a data context and is done only once during a communications session. When data is then sent to a receiving DBMS, specific descriptions of the data precede the data itself and refer to the machine and system descriptors earlier identified. The received data is then subjected to a conversion process to interpret the data by referencing the machine and system descriptors.
U.S. Pat. No. 5,416,917 to Adair et al., assigned to the same Assignee as this Application, enables a database to request or receive data that is expressed in a non-native form. The Adair et al. system establishes layers of descriptive information which isolate machine characteristics, levels of support software and user data description. Any data conversions that are necessary are accomplished only by the receiver of the data and then only at the point where it is necessary to have the data represented in the receiver's native format for processing.
U.S. Pat. No. 5,560,005 to Hoover et al. describes an object-based, relational, distributed database system, wherein each of a plurality of remotely located user computers include a heterogeneous data structure. Data at such locations are "homogenized" by mapping predetermined data field items stored in the heterogeneous computers to corresponding object attributes associated with a predetermined instance of an object. The system stores location information and status information relating to the homogenized data in a centralized "object broker" processor for object management. This facilitates location and retrieval of data items from the remote heterogeneous databases.
Dao et al. in U.S. Pat. No. 5,596,744 describe a heterogeneous database management system which provides a unified view to a user of all attached databases. Dao et al. employ a "dictionary node" which represents schema, data distribution, local site configuration and inter-site relationships of data among various nodes and their associated databases. A data information manager, uses the data dictionary, in combination with a data query from a user, to decompose the data query into a local-site execution plan for retrieval of remote data. Thereafter, the local-site execution plan is transmitted to a remote site for execution.
Hayashi et al. in U.S. Pat. No. 5,408,652 describe a heterogeneous database system for providing a unified response to a user's inquiry. Hayashi et al. employ a dictionary for storage of basic data organization information relating to each disparate database, names of datatypes, etc., etc. Through use of the dictionary, data translations are carried out which enable the creation of different access procedures for different database data structures.
U.S. Pat. No. 5,596,746 to Shen et al. describes a method for transforming relational database schema into object models, using conversion tables. Associations between classes of objects are performed on a one-to-one, one-to-many and many-to-many association basis by analyzing various attributes. Briefly stated, the method maps the database schema into instances in a table metamodel. Next, the information in the table metamodel is mapped into instances in an object metamodel and thereafter, the information and the object metamodel are used to generate a file that is compatible with an object modeling tool to enable display of an object model on a display device.
The above indicated prior art either does not address datatype and/or function mapping or utilizes straightforward mapping of one datatype into another datatype to enable transparent access in heterogeneous database systems. To provide additional flexibility for the user of a heterogeneous database system, the system needs to be able to convert data classified in a remote datatype into a different datatype at the local database so that the received data can be subjected to one or more functions that are applicable to the local datatype. Further, a local DBMS needs to be able to utilize a remotely available function in accordance with data available at a remote database, when the particular function is not available at the local database. Also, there is a need in a local relational database to be able to (i) convert a received datatype to one or more datatypes, dependent upon a characteristic of the received data, or (ii) to a new datatype which can be subjected to one or more local functions which may not be available at the remote database.
Accordingly, it is an object of this invention to provide an improved DBMS, wherein a user is provided with a unified view of a heterogeneous database system.
It is another object of this invention to provide an improved DBMS wherein a datatype conversion can be accomplished which enables specific local functions to be applied to a local datatype, which function may or may not be available at a remote database.
It is yet another object of this invention to provide an improved DBMS wherein a function available at a remote database system can be utilized to operate upon remotely positioned data.